POSIX and GNU define conflicting versions of `strerror_r`. The GNU
version returns the string but doesn't necessilary write into buf.
The POSIX version writes into buf and returns the length but doesn't
necessilary append a terminate the string with a NUL if it's too long
to fit in buf.
This commit fixes building ostree-prepare-root with musl libc. The
stripped static build with musl on my machine is 30K vs. 724K with glibc
static and 11K with glibc shared.
Closes: #477
Approved by: cgwalters
char buf[1024];
char *p;
+#ifdef _GNU_SOURCE
p = strerror_r (errno, buf, sizeof (buf));
+#else
+ strerror_r (errno, buf, sizeof (buf));
+ buf[sizeof (buf) - 1] = '\0';
+ p = buf;
+#endif /* _GNU_SOURCE */
va_start (args, format);